home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
pcl
/
docs.lha
/
latexinfo
/
manual
/
latex2dvi
next >
Wrap
Text File
|
1992-02-14
|
5KB
|
205 lines
#!/bin/sh
#
# latex2dvi - prepare LaTeXinfo files for printing.
#
# Copyright (C) 1990, 1991 Free Software Foundation.
#
# Roland McGrath <roland@gnu.ai.mit.edu>
# Converted To LaTeXinfo by Mike Clarkson <mike@apl.ists.ca>
# Version 0.10
# 24 Sep 91
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 1, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# A copy of the GNU General Public License can be obtained from this
# program's author (send electronic mail to roland@ai.mit.edu) or from
# the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
# 02139, USA.
if [ $# -eq 0 ]; then
echo "Usage: `basename $0` FILE ..." >&2
exit 1
fi
# The names of your LaTeX commands.
LATEXINDEX=latexindex
BIBTEX=bibtex
LATEX=latex
for file in $*; do
if [ ! -f $file ] ; then
if [ ! -f $file.tex ] ; then
echo `basename $0`: File not found - $file
echo Please give the full file name.
exit 1
else
file=$file.tex
fi
fi
base="`basename $file .latexinfo | sed -e 's/\.texi$//' -e 's/\.tex$//'`"
# Find all existing index files corresponding to FILE.
idx_files="`echo ${base}.??`"
if [ "$idx_files" = "${base}.??" ] ; then
# Maybe it's new!
if grep '^\\newindex{' $file > /dev/null ; then
changed=yes
else
idx_files=''
fi
else
# Ignore files with two-letter extensions that don't look like index files.
oidx_files="$idx_files"
idx_files=''
for idx_file in $oidx_files; do
if [ "`sed -n '1s/^\(.\).*$/\1/p' $idx_file`" = \\ ]; then
# It starts with a backslash, so it's probably an index file.
idx_files="$idx_files $idx_file"
fi
done
fi
if grep '^\\bibliography{' $file > /dev/null ; then
bibtex=yes
bib_file=$base.bbl
if [ -f $bib_file ] ; then
# Save a copy of the old bbl file.
cp ${bib_file} ${bib_file}O
else
# There wasn't a bbl before so run it again anyway.
changed=yes
fi
fi
for idx_file in $idx_files; do
# Save a copy of the old index file.
cp ${idx_file} ${idx_file}O
done
if [ "$idx_files" != "" ]; then
# Run LATEXINDEX on the index files.
echo ${LATEXINDEX} $idx_files
${LATEXINDEX} $idx_files
fi
aux_file=$base.aux
if [ -f $aux_file ] ; then
# Save a copy of the old aux file.
cp ${aux_file} ${aux_file}O
else
# There wasn't a aux before so run it again anyway.
changed=yes
fi
# Run LaTeX on FILE.
echo ${LATEX} $file
if ${LATEX} $file; then
# Find all the index files that exist now,
# so we can see if there are any new ones.
new_idx_files="`echo ${base}.??`"
if [ "$new_idx_files" = "${base}.??" ]; then
new_idx_files=''
else
oidx_files="$idx_files"
new_idx_files=''
for idx_file in $oidx_files; do
if [ "`sed -n '1s/^\(.\).*$/\1/p' $idx_file`" = \\ ]; then
# It starts with a backslash, so it's probably an index file.
new_idx_files="$new_idx_files $idx_file"
fi
done
fi
if [ "$new_idx_files" != "$idx_files" ]; then
# There are some new index files.
changed=yes
idx_files="$new_idx_files"
else
# Run through all the index files, comparing them to the old ones.
# changed=no
for idx_file in $idx_files; do
# Compare the old and new index files.
cmp -s ${idx_file}O ${idx_file}
status=$?
# Remove the old index file.
rm -f ${idx_file}O
if [ $status -ne 0 ]; then
# The index file has changed.
changed=yes
fi
done # for idx_file
fi
if [ "$bibtex" = "yes" ] ; then
echo ${BIBTEX} $base
if ${BIBTEX} $base ; then
if [ -f $bib_file ] ; then
# Compare the old and new index files.
cmp -s ${bib_file} ${bib_file}O
status=$?
# Remove the old index file.
rm -f ${bib_file}O
if [ $status -ne 0 ]; then
# The index file has changed.
changed=yes
fi
fi
else
# BibTeX failed. Remove the copies of the backup bbl file.
if [ -f ${bib_file}O ] ; then
rm -f ${bib_file}O
fi
fi
fi
# Compare the old and new aux files.
if [ -f ${aux_file}O ] ; then
cmp -s ${aux_file}O ${aux_file}
status=$?
# Remove the old aux file.
rm -f ${aux_file}O
if [ $status -ne 0 ]; then
# The aux file has changed.
changed=yes
fi
else
# The aux file has changed.
changed=yes
fi
if [ "$changed" = "yes" ]; then
# Some index file changed. Run LATEXINDEX and LaTeX again.
# Run LATEXINDEX on the index files.
echo ${LATEXINDEX} $idx_files
if ${LATEXINDEX} $idx_files; then
# Run LaTeX2dvi on FILE.
echo $0 $file
$0 $file
fi
fi
else
# LaTeX failed. Remove the copies of the index files.
for idx_file in $idx_files; do
rm -f ${idx_file}O
done
fi
done # for file